package com.yyt2025.util;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class StringSplitter {

    /**
     * 将字符串按照大写字母分割，并将每个子字符串转换为小写。
     *
     * @param input 输入的字符串
     * @return 分割后的字符串列表
     */
    public static String[] splitByUpperCaseAndToLower(String input) {
        List<String> result = new ArrayList<>();
        StringBuilder current = new StringBuilder();

        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if (Character.isUpperCase(c)) {
                if (current.length() > 0) {
                    result.add(current.toString());
                    current.setLength(0);
                }
            }
            current.append(c);
        }

        // 添加最后一个子字符串
        if (current.length() > 0) {
            result.add(current.toString());
        }

        // 将列表中的字符串转换为小写
        for (int i = 0; i < result.size(); i++) {
            result.set(i, result.get(i).toLowerCase());
        }
        return result.toArray(new String[0]);
    }

    /**
     * 将字符串按照大写字母分割，并将每个子字符串转换为小写，然后用 File.separator分割。
     *
     * @param input 输入的字符串
     * @return 分割后的字符串列表
     */
    public static String splitByUpperCaseAndToLowerRelativePath(String input) {
        String[] strs = splitByUpperCaseAndToLower(input);
        StringBuilder result = new StringBuilder();
        for (String str : strs) {
            result.append(str).append(File.separator);
        }
        return result.toString();
    }

}